Sampled data numerical contouring machine controller apparatus and method providable with on line capability for contour cornering deceleration and acceleration

ABSTRACT

A numerical contouring controller employs ramped velocity commands for pre-corner slowdown and post-corner speedup in the relative movement between the controlled machine tool and a workpiece. The controller includes a digital computer which generates a command position trajectory. The computer operates in a closed position loop at a predetermined sampling frequency to compare accumulated position feedback data and the command position and thereby to generate command data to velocity loop controls which accurately position the machine tool slides. A program system operates the computer to make and implement the motion command determination including path speed change determinations and to make and implement nonmotion command determinations for machine tool, data input and machine operator interfacing.

United States Patent Middleditch [451 Oct. 17, 1972 [54] SAMPLED DATA NUMERICAL CONTOURING MACHINE CONTROLLER APPARATUS AND METHOD PROVIDABLE WITH ON LINE CAPABILITY FOR CONTOUR CORNERING DECELERATION AND Primary ExaminerEugene G. Botz AttorneyF. H. Henson, R. G. Brodahl and E. F. Possesky 5 7] ABSTRACT ACCELERATION A numerical contouring controller employs ramped velocity commands for pre-corner-slowdown and post- [72-1 Inventor Alan Mlddledltch Pmsburgh corner speedup in the relative movement between the [73] Assignee: Westin house Electric Corporation, controlled machine tool and a workpiece. The cong e n u Pittsburgh, Pa. troller mgludesa digital COmp'IIllI-lfl' WhlCh generates a comman position tra ectory. e computer operates [22] May 1970 in a closed position loop at a predetermined sampling [21] Appl. No.: 39,940 frequency to compare accumulated position feedback data and the command position and thereby to generate command data to velocity loop controls ig 26 6 which accurately position the machine tool slides. A rogram s stem 0 erates the computer to make and P y P [58] Field of Search ..340/l72.5;235/l51.ll implement the motion command determination cluding path speed change determinations and to [56] Reerences cued make and implement nonmotion command determina- UNITED STATES PATENTS tions for machine tool, data input and machine opera- 3 573 738 4/1971 B m t 1 235/151 11 x tonmerfacmg" 0 es e a 3,204,132 8/1965 Benaglio et al ..307/149 92 Claims, 52 Drawing Figures X M 22 I6 l MAC E CONVERTER 24 X fi- MEM E'; Q T I 28 .8, Y D/A Y MACHINE 42 CONVERTER YDR'VE :J' MEMBER 1 DISC 3 STORAGE INTERN/#8 '27 4O SYSTEM DIGITAL 20 M I COMPUTER Z M z SUPERVISORY 36 I SYSTEM CONVERTER Z T M E 22 DIGITAL C% L 2 COMPUTER- OPERATOR a D/A o MACHINE CONTROLS CONVERTER o DR'VE T T MEMBER MAcH 5 Li DISPLAYS C WA 1, c MACHINE REAQOLHS l4 CONVERTER l4 CDR'VE I MEMBER 307 AXIS posmon FEEDBACK COUNTERS P'ATENTEBncr 11 I912 SHEET OZUF 48 PATENTEflum 11 I972 3. 599.31 T SHEET 0; [1F 48 To OTHER N/C SYSTEM CIRCUITS 1 FIG. 4B 8 O POWER 2 SUPPLY POWER BUFFER, FAILURE OVERFLOW INTERRUPT INTERRUPT ,7? I/O ADDRESS To ALL INTERFACE L..R7 R7 CO Co to C7 IE o L63 aLe4 L.: 'NPUTS IEAIS 7360 110 CENTRAL 292 IDIS m5 OXAO INPUT 1115 INPUT STSI T O OUTPEZ'BO 3&0 OUTPUT 6x5 ExRANDER BITS BIT BIT A INTERFACE L INTERFACE EXPANDER L80 L788 L79 Lza s L4aL5 0x80 OD o 010 IE|BO 332% 00% ot'ls 0X55 IEB|5 7 SERVICE REQUEST -lNTEaRRUPT ADDRESS L66 a L67 TAPE CHARACTER ,5R5AD CLOCK /Z-OVERFLOW SAMPLING \d XOVERFLOW SIGNAL looc I P'ATENTEDum n ma 3,699.31 1

SHEET 08 0F 48 FIG.8.

TA PE READER+ TAPE 8 CHANNEL DRIVE (L75-L76) TRR PSC

TRH

TRF

DRRT

DRLT

REWIND ENABLE PSC RE QBER NCXA OPERATING CIRCUITRY BOND NCY

PATENIEIIIJBT 11 I972 SHEET 100F 18 PHOTO DIODES (L68 L69) AMPLIFIER AMPLIFIER AMPLIFIER AMPLIFIER AMPLIFIER AMPLIFIER AMPLIFIER FIG. 9.

SPRK

TCHB

ANYCH NOCH DRRT

REWIND ENABLE PATENTEDBIJ I 1 I972 3.699.317

SHEET 11 0F 48 TAPE CONIROL BI MDI INPUT LZB-L74 FIG.|O.

+5V FRI 94 |5V +24v N IEAO M I HI D C MDI ADDRESS FILTER a GATE 3 MDICH3 FILTER a GATE IEA2 M 1 H D C 4 FILTER a GATE IEA3 M H DIC 5 FILTER a GATE IEA4 MDIGHG FILTER a GATE IEA5 MDICH7 FILTER a GATE 3 IEAG MPICHB FILTER a GATE g IEAT R6 MDI ADDREss MDI C4 ADDRESS Um IGNORE co REsET RG OADD6 OXAI4 ADVANCE EARLY STOP ADvANcE ENABLE RD INT PARcL W oxAII OXA|5 M0 L0 EoR SPRK W ENABLE PARCL OXAS SR5AD PARITY IGNORE PATENIEDum 11 m2 3.699.31 7

sum 12 0F 48 EOB SPRK ADVANCE FEOBM ENABLE READ INIT PARCL ENAB- RDI NT-PARCL SR5AD ADVANCE SPRREL 'ANY CH EARLY STOP TAPE CHARACTER TAPE CONTROL CIRCUITRY L7] FIG. IOA.

PATENTEDIIBI I7 I972 3'699'317 SHEET 1; HF 48 FIZgM INPUT CHANNEL K7 INPUT FILTER- R40 IlOV DC N N /I77 MODE N Rl-Y I53 c +5v l7l ATN MIA 3 I72-\ N I I I; M I LMODE2 ATN M2A FILTER CIRCUIT s I l A o B I MODE4 ATN W FILTER CIRCUIT C J WORDI ATN |A FILTER cIRcuIT l OC WORD G P ATN W2 FILTER CIRCUIT A woRD2 1 O X AXISI AT A A FILTER CIRCUIT MANUAL N I z AxIs c SELECT ATN AXZA FILTER CIRCUIT AXISZ I FILTER CIRCUIT BLK j RuN ITAPEI TAIA I N/O ATN TAPE ELK I RuN I TAPE2 ATN TAZA h FILTER CIRCUIT N/O c F3;- K7I0 ATN ASCIIA FILTER CIRCUIT RS358 c Kv ATN BLKDA FILTER cIRcuIT BLOCK 0 DELETE FILTER CIRCUIT FILTER cIRcuIT FILTER CIRCUIT II-lIov DC 2 To FILTER CIRCUIT K8 0 PATENTEB T 17 I972 3.699.317

- SHEET 15 0F 48 Eg INPUTF T R IL E I I58 T"? RIF N N I OP [1 RI l7l I72 ----o o- ATN *e N m DI? N IEAO DI l7 TAPE FORWARD c T t 3 A i ATN FILTER cIRcuIT.

Q Q TAPE TFWDA c I .I/ FILTER cIRcuIT "r n ATN "IEAZ TAPE TRWDA I c O lf ATN FILTER cIRcuIT TA TsToPT I O HA3 DOOR o I J: l. FILTER CIRCUIT o ATN CYCLE CYSTA l sTART J l. FILTER CIRCUIT ATN FEED FHOLDA & I iIEAs HOLD FILTER cIRcuIT L l To K5 FILTER CIRCUIT l TAPE R26 DELAY ATN c -0+5V l 0 HP N TDLYA l g N II-IIOV DC ou) TO K6 FILTER CIRCUIT FILTER cIRcuIT I I FILTER cIRcuIT O FILTER cIRcuIT FILTER CIRCUIT FILTER CIRCUIT a I II DC FILTER CIRCUIT To K5 FIG. I IC. F

PKTENTEU I973 3.699.317

SHEET 17 0F 48 Q P I'NPuT FILTER -IIOVDC N N 1-,

. TRANSFER F RI? +5V I73 ATN TRFA RI I72- N I W N o ge ow L 1550 13550 I64X c T I FILTER cIRcuIT 0-0 o- ATN SETZA IEBI MACH L I Q m FILTER cIRcuIT (Hi-VT w l i FILTER CIRCUIT I KMMACH I ZERO FILTER CIRCUIT a XRANGE XRANGEI ATN v IE I K-HORIZ HOME FILTER cI cuIT I C FILTER cIRcuIT 0- .4 HOME ATN Z RANGE A l z O FILTER CIRCUIT INPUT CHANNEL K6 c FILTER c RcuIT L FILTER CIRCUIT I FILTER cIRcuIT PSC F FILTER CIRCUIT FILTER CIRCUIT v e FILTER CIRCUIT IT T CT FIG. "E c FILTER CIRCU 0 K7 PATENTEBIIN I 1 I972 SHEET 19 0F 48 INPUT FILTER FROM R46 K8 N N "-II0 v DC ['77 78 RI? 73 F +5v I l ATN F7; 3 RI I7 72 N l DI? N '"Q'I'ET ;Cl LL 1'- l64 l v o FILTER CIRCUIT ATN MA IEBI HF i c FILTER cIRcuIT ETA M ATN I -1EB2 c FILTER cIRcuIT 4 l 3 ATN m OIEB3 JOG l U I SELECT FILTER cIRcuIT L Am A T I JIEB4 .ooI c A W FILTER cIRcuIT ATN J l IEB5 c o O A FILTER CIRCUIT ATN I FILTER cIRcuIT ATN .OOOIA I IEB7 RIo \Dio INPUT CHANNEL K9 Cl0 FILTER CIRCUIT FILTER cIRcuIT I =r I FILTER cIRcuIT FILTER cIRcuIT V FILTER CIRCUIT C A FILTER cIRcuIT e \l F|G |IG FILTER CIRCUIT 

1. A numerical contouring controller for a machine having at least two members movable along or about respective motion axes, said controller comprising means for generating a command position trajectory, for each of the two axes in response to input numerical command data, means for generating feedback data relative to the position of each of the machine members, means for accumulating the position feedback data, means for detecting the accumulated position feedback data substantially at each Of successive sample time points, means for generating command outputs in response to the command position trajectories and the sampled position feedback data, and means for operating the two machine members in response to the command outputs.
 2. A controller as set forth in claim 1 wherein the time points are substantially equally spaced to provide a fixed time sampling system.
 3. A controller as set forth in claim 2 wherein a digital computer detects the accumulated feedback data and generates the trajectories and the command outputs, and the sampling rate is greater than approximately 20 Hertz and less than a rate approximately equal to the ratio of 3 microseconds to the computer memory cycle time times 4 hundred.
 4. A controller as set forth in claim 2 wherein a digital computer detects the accumulated feedback data and generates the trajectories and the command outputs, and the sampling rate is greater than approximately 20 Hertz and less than approximately 400 Hertz.
 5. A controller as set forth in claim 1 wherein the input command data includes data representative of the end points of successive segments along a desired contour, the command position trajectories are formed by successive axis points corresponding to points along the segment between the segment end points, and means are provided for operating said feedback data detecting means and said position trajectory generating means at a predetermined sampling rate to generate feedback data detections and command point generations at the same sampling rate.
 6. A controller as set forth in claim 5 wherein means are provided for each axis for determining in one sampling period the command point to be generated in the next sampling period.
 7. A controller as set forth in claim 6 wherein the command points are absolute position values, said accumulating and detecting means includes means for determining absolute position values from each detected position feedback, and means are provided for generating an error representation of the difference between the absolute command and position values for each axis.
 8. A controller as set forth in claim 1 wherein a digital computer detects the feedback data and generates the trajectories and the command outputs.
 9. A controller as set forth in claim 8 wherein said accummulating means is a counter read each sample period by said computer.
 10. A controller as set forth in claim 7 wherein means are provided for operating a digital computer to determine the position error for each axis after the feedback position detections and conversions to absolute values without any other intervening arithmetic operations.
 11. A controller as set forth in claim 8 wherein means are provided for operating said computer to detect an operator feed hold request, means are provided for operating said computer during feed hold to prevent the command position trajectories from determining the command outputs and to set the command outputs substantially equal to zero.
 12. A controller as set forth in claim 8 wherein means are provided for operating said computer to detect changes in the feedrate override value, and means are provided for operating said computer to change the time scales for the command position trajectories in proportion to changes in the feedrate override.
 13. A controller as set forth in claim 8 wherein the input-command data pertains to successive contour segments and means are provided for operating said computer to determine whether a slowdown is required prior to the end of each segment, means are provided for operating said computer to determine a segment point at which to reduce speed in each segment determined to require slowdown, means are provided for operating said computer to implement in the command position trajectories a speed reduction from the segment operating speed value to a lower speed value for each segment determined to require slowdown, means are provided for operating said computer to implement In the generation of the command position trajectories any speed increase required by the command data for each segment following a slowdown segment.
 14. A controller as set forth in claim 13 wherein means are provided for operating said computer to implement the slowdowns and speed increases as constant ramp speed changes in the command position trajectories.
 15. A controller as set forth in claim 13 wherein the lower speed value is zero.
 16. A controller as set forth in claim 13 wherein said computer is operated to determine a need for slowdown if the difference in any axis velocity between successive segments is greater than a specified deceleration rate times the sampling period.
 17. A method for operating a machine having at least two members movable along or about respective axes, the steps of said method comprising: operating a computer for determining input numerical command data including data representative of the end points of successive segments along a desired contour, operating a computer for generating representations of successive axis points corresponding to points along the segments between the segment end points to form a command position trajectory for each of the two axes in response to the input command data, generating a sampling determinant at a predetermined rate, operating a computer for generating the successive trajectory command point representations at the sampling determinant rate, operating a computer for determining the successive command points for at least one axis, by adding the next previous command point to a position change quantity which is representative of sample period velocity times the sampling period, operating a computer for generating command outputs at least in response to the command position trajectories, and operating the two machine members in response to the command outputs.
 18. A method for operating a machine as set forth in claim 17 wherein the sample period velocity is the average section velocity.
 19. A method for operating a machine as set forth in claim 17, wherein the computer is operated to detect operator feedrate override setting and the position change quantity is made a function of the feedrate override.
 20. A method for operating a machine as set forth in claim 19 wherein the feedrate override is represented as a percentage value, and the computer is further operated to apply the feedrate representation as a multiplier in the position change quantity.
 21. A method for operating a machine as set forth in claim 17 wherein the computer is further operated to determine the position change quantity by adding the next previous sample period position quantity to any required acceleration or deceleration in the present sample period times the square of the sample period.
 22. A method for operating a machine as set forth in claim 21 wherein the acceleration or deceleration value is constant.
 23. A method for operating a machine as set forth in claim 17 wherein a first program is executed in the computer at a rate equal to the sampling rate, the successive trajectory command points and the command outputs are determined during the execution of the first program, at least one second program is executed in the computer during nonoperating periods of the first program, and predetermined calculations are made on the input command data during the second program execution to develop precalculated data for use in making the command point determinations during execution of the first program.
 24. A method for operating a machine as set forth in claim 23 wherein the precalculated data includes representations of respective distances over which acceleration rate and constant speed and deceleration rate values are to be implemented in the trajectories, and the position change quantity is determined in accordance with the distance representations and the acceleration and deceleration and constant speed values.
 25. A method for operating a machine as set forth in claim 24 wherein the pRecalculated data further includes the product of a constant specified acceleration or deceleration value and the sampling period so that the position change representation can be determined by an addition or subtraction operation during execution of the first program.
 26. A method for operating a machine as set forth in claim 17 wherein the computer is further operated to determine the one axis as the fastest axis in each segment and to determine the slope of each segment relative to the fastest axis and to determine from the corresponding slope and the corresponding fastest axis command points for the other axis in each segment thereby to form the other axis command position trajectory.
 27. A method for operating a machine having at least two members movable along or about respective axes, the steps of said method comprising: operating a computer for determining input numerical command data including data representative of the end points of successive segments along a desired contour, operating a computer for generating representations of successive axis points corresponding to points along the segments between the segment end points to form a command position trajectory for each of the two axes in response to the input command data, operating a computer for determining whether acceleration and deceleration are required in each segment, and to implement acceleration and deceleration determinations in generating the command position trajectories, generating a sampling determinant at a predetermined rate, operating a computer for generating the successive trajectory command point representations at the sampling determinant rate, operating a computer for generating command outputs at least in response to the command position trajectories, and operating the two machine members in response to the command outputs.
 28. A method for operating a machine as set forth in claim 27, wherein the acceleration and deceleration rate values are specified as predetermined constants.
 29. A method for operating a machine as set forth in claim 28 wherein segment deceleration is instituted when required to reach zero velocity at the end of segments in which deceleration is required.
 30. A method for operating a machine having at least two members movable along or about respective axes, the steps of said method comprising: operating a computer for determining input numerical command data including data representative of the end points of successive segments along a desired contour, operating a computer for generating representations of successive axis points corresponding to points along the segments between the segment end points to form a command position trajectory for each of the two axes in response to the input command data, generating a sampling determinant at a predetermined rate, operating a computer for generating the successive trajectory command point representations at the sampling determinant rate, operating a computer for generating feedback data relative to tee position of each of the machine members, the position feedback data being accumulated, the accumulated feedback data being periodically detected by the computer at the sampling rate, and further operating the computer for generating the command outputs in response to the command position trajectories and the sampled position feedback data, and operating the two machine members in response to the command outputs.
 31. A method for operating a machine as set forth in claim 30 wherein the computer is further operated to determine the successive command points for at least one axis by adding the next previous command point to a position change quantity which is representative of sample period velocity times the sampling period.
 32. A method for operating a machine as set forth in claim 31 wherein the computer is further operated to determine the position change quantity by adding the next previous sample period position quantity to any required acceleration or deceleration in the present sample period times the sQuare of the sample period.
 33. A method for operating a machine as set forth in claim 31 wherein a first program is executed in the computer at a rate equal to the sampling rate, the successive trajectory command points and the command outputs are determined during the execution of the first program, at least one second program is executed in the computer during nonoperating periods of the first program, and predetermined calculations are made on the input command data during the second program execution to develop precalculated data for use in making the command point determinations during execution of the first program.
 34. A method for operating a machine as set forth in claim 33 wherein the precalculated data includes representations of respective distances over which acceleration rate and constant speed and deceleration rate values are to be implemented in the trajectories, and the position change quantity is determined in accordance with the distance representations and the acceleration and deceleration and constant speed values.
 35. A method for operating a machine as set forth in claim 30 wherein the computer is operated to determine whether acceleration and deceleration are required in each segment and to implement acceleration and deceleration determinations in generating the command position trajectories.
 36. A method for operating a machine as set forth in claim 27 wherein the acceleration determination is made by comparing of a distance quantity representative of endpoint speed in each segment and a distance quantity representative of required speed in each next segment thereby avoiding square root calculations.
 37. A numerical contouring controller for a machine having at least two members movable along or about respective axes, said controller comprising a digital computer, means for operating said computer to determine input numerical command data including data representative of the end points of successive segments along a desired contour, means for operating said computer to generate successive axis points corresponding to points along the segments between the segment end points thereby to form a command position trajectory for each of the two axes in response to the input command data, means for operating the computer to determine whether acceleration and deceleration are required in each segment and to implement acceleration and deceleration determinations in generating the command position trajectories, means for generating a sampling determinant at a predetermined rate, and means for operating said computer to generate the successive command points on the trajectory at the sampling determinant rate.
 38. A numerical contouring controller for a machine having at least two members movable along or about respective axes, said controller comprising a digital computer, means for operating said computer to determine input numerical command data including data representative of the end points of successive segments along a desired contour, means for operating said computer to generate successive axis points corresponding to points along the segments between the segment end points thereby to form a command position trajectory for each of the two axes in response to the input command data, means for generating a sampling determinant at a predetermined rate, means for operating the computer to determine the successive command points, for at least one axis by adding the next previous command point to a position change quantity which is representative of sample period velocity times the sampling period, and means for operating said computer to generate the successive command points on the trajectory at the sampling determinant rate.
 39. A numerical contouring controller as set forth in claim 38 wherein means are provided for operating the computer to determine the position change quantity by adding the next previous sample period velocity times the sample period to any required acceleration or deceleration in the present sample period times the square of the sample period.
 40. A numerical contouring controller as set forth in claim 39 wherein the acceleration or deceleration value is constant.
 41. A numerical contouring controller for a machine having at least two members movable along or about respective motion axes, said controller comprising a digital computer, means for operating said computer to generate a command position trajectory for each of the two axes in response to input numerical command data, means for generating feedback data relative to the position of each of the machine members, means for transferring the feedback position data from said generating means to said computer, means for operating said computer to generate command outputs in response to the command position trajectories and the position feedback data, and means for operating the machine members in response to the command outputs.
 42. A numerical contouring controller as set forth in claim 41 wherein means are provided for operating said computer to generate interfacing data outputs in response to other data inputs, and means for responding to the interfacing data outputs to operate operator and machine interfacing devices.
 43. A numerical contouring controller as set forth in claim 41 wherein the input command data includes data representative of the end points of successive segments along a desired contour, the command position trajectories are formed by successive command axis points corresponding to points along the segment between the segment end points and wherein means are provided for operating said computer to generate the successive command axis points in respective sample periods occurring at a predetermined rate.
 44. A numerical contouring controller as set forth in claim 41 wherein means are provided for operating said computer to detect an operator feed hold request, means are provided for operating said computer during feed hold to prevent the command position trajectories from determining the command outputs and to set the command outputs substantially equal to zero.
 45. A numerical contouring controller as set forth in claim 41 wherein means are provided for operating said computer to detect changes in the feedrate override value, and means are provided for operating said computer to change the time scales for the command position trajectories in proportion to changes in the feedrate override.
 46. A numerical contouring controller as set forth in claim 41 wherein means are provided for operating said computer to determine whether a slowdown is required prior to the end of each segment, means are provided for operating said computer to determine a segment point at which to reduce speed in each segment determined to require a slowdown, means are provided for operating said computer to implement in the command position trajectories a speed reduction from the segment operating speed value to a lower speed value for each segment determined to require slowdown, means are provided for operating said computer to implement in the generation of the command position trajectories any speed increased required by the command data for each segment following a slowdown segment.
 47. A numerical contouring controller as set forth in claim 46 wherein means are provided for operating said computer to implement the slowdowns and speed increases as ramp speed changes in the command position trajectories.
 48. A numerical contouring controller as set forth in claim 47 wherein means are provided for operating said computer to determine a need for slowdown if the difference in any axis velocity between successive segments is greater than a specified deceleration rate times the sampling period.
 49. A numerical contouring controller as set forth in claim 41 wherein means are provided for operating said computer to determine whether acceleration and deceleration are required in each segment and to implement acceleration and deceleration determinations in generating the command position trajectories.
 50. A method for operating a machine having at least two members movable along or about respective axes, the steps of said method comprising generating feedback data relative to the position of each of the machine members, accumulating the position feedback data, transferring the position feedback data to the input of a digital computer, operating the computer to generate a command position trajectory for each of the two axes, operating the computer to generate command outputs in response to the command position trajectories and the position feedback data, and operating the two machine members in response to the command outputs.
 51. A method for operating a machine as set forth in claim 50 wherein interfacing data outputs are generated in response to other data inputs and operator and machine interfacing devices are operated in response to the interfacing data outputs.
 52. A method for operating a machine as set forth in claim 50 wherein the input command data includes data representative of the end points of successive segments along a desired contour, the command position trajectories are formed by successive command axis points corresponding to points along the segment between the segment end points and wherein the computer is operated to generate the successive command axis points in respective sample periods occurring at a predetermined rate.
 53. A method for operating a machine as set forth in claim 50 wherein the computer is operated to determine whether acceleration and deceleration are required in each segment and to implement acceleration and deceleration determinations in generating the command position trajectories.
 54. A method for operating a machine having at least two members movable along or about respective axes, the steps of said method comprising generating feedback data relative to the position of each of the machine members, writing the programs in a program system for a digital computer in assembly language, assembling and entering the program system into the computer memory, operating the computer in accordance with the program system to obtain input axis motion command data and other data and to obtain the generated position feedback data, operating said computer to generate data interfacing outputs in response to the other data, operating said computer to generate axis motion control data outputs in response to the axis motion command data, and operating predetermined machine tool and operator interface devices and the machine members in response to the data outputs.
 55. A method for operating a machine as set forth in claim 54 wherein the input command data includes data representative of the end points of successive segments along a desired contour, the command position trajectories are formed by successive command axis points corresponding to points along the segment between the segment end points and the computer is operated to generate the successive command axis points in respective sample periods occurring at a predetermined rate.
 56. A method for operating a machine as set forth in claim 54 wherein the computer is operated to determine whether acceleration and deceleration are required in each segment and to implement acceleration and deceleration determination in generating the command position trajectories.
 57. A method for operating a machine as set forth in claim 54 wherein feedback data is generated relative to the position of each of the machine members, the position feedback data is accumulated, the accumulated feedback data is periodically detected by the computer at the sampling rate, and the computer is further operated to generate the command outputs in response to the command position trajectories and the sampled position feedback data.
 58. A method for operating a machine as set forth in claim 55 wherein feedback data is generated relative to the position of each of the machine members, the position feedback data is accumulated, the accumulated feedback data is periodically detected by the computer at the sampLing rate, and the computer is further operated to generate the command outputs in response to the command position trajectories and the sampled position feedback data.
 59. A method for operating a machine as set forth in claim 56 wherein feedback data is generated relative to the position of each of the machine members, the position feedback data is accumulated, the accumulated feedback data is periodically detected by the computer at the sampling rate, and the computer is further operated to generate the command outputs in response to the command position trajectories and the sampled position feedback data.
 60. A method for operating a machine as set forth in claim 52 wherein feedback data is generated relative to the position of each of the machine members, the position feedback data is accumulated, the accumulated feedback data is periodically detected by the computer at the sampling rate, and the computer is further operated to generate the command outputs in response to the command position trajectories and the sampled position feedback data.
 61. A method for operating a machine as set forth in claim 53 wherein feedback data is generated relative to the position of each of the machine members, the position feedback data is accumulated, the accumulated feedback data is periodically detected by the computer at the sampling rate, and the computer is further operated to generate the command outputs in response to the command position trajectories and the sampled position feedback data.
 62. A numerical contouring method for operating a machine having at least two members movable along or about respective axes, the steps of said method comprising obtaining numerical command data for each of successive contour segments, determining a representation of whether a speed reduction is required prior to the end of each segment, determining a representation of a segment point at which to reduce speed in each segment determined to require slowdown, generating a command position trajectory for each of the two axes in response to the command data, implementing in the generation of the command position trajectories a ramp speed reduction from the segment operating speed value to zero speed value over the distance from the determined slowdown point to the end of each segment determined to require slowdown, implementing in the generation of the command position trajectories a ramp speed increase from the starting point of each segment following a deceleration segment, determining command output at least in response to the command position trajectories, and operating the machine members in response to the command outputs.
 63. A method for operating a machine as set forth in claim 62 wherein a digital computer is employed to generate the command position trajectories and to implement the ramp speed reductions and increases in the trajectories and to determine the command outputs.
 64. A method for operating a machine as set forth in claim 63 wherein feedback data is generated relative to the position of each of the machine members, the position feedback data is accumulated, the accumulated feedback data is periodically detected by the computer, and the computer is further operated to generate the command outputs in response to the command position trajectories and the sampled position feedback data.
 65. A method for operating a machine as set forth in claim 62 wherein the numerical command data includes data representative of the end points of successive segments along a desired contour, the computer forms the command position trajectories from successive command axis points corresponding to points along the segment between the segment end points and the computer generates the successive command axis points in respective sample periods occurring at a predetermined rate.
 66. A method for operating a machine as set forth in claim 65 wherein feedback data is generated relative to the position of each of the machine members, the position feedback data is accumulated, the accumUlated feedback data is periodically detected by the computer at the sampling rate, and the computer is further operated to generate the command output in response to the command position trajectories and the sample position feedback data.
 67. A method for operating a machine as set forth in claim 65 wherein the computer is further operated to determine the successive command points for at least one axis by adding the next previous command point to a position change quantity which is representative of sample period velocity times the sampling period.
 68. A method for operating a machine as set forth in claim 67 wherein the sample period velocity is the average velocity.
 69. A method for operating a machine as set forth in claim 67 wherein the computer is further operated to determine the position change quantity by adding the next previous sample period velocity times the sample period to any required acceleration or deceleration in the present sample period times the square of the sample period.
 70. A method for operating a machine as set forth in claim 69 wherein the acceleration or deceleration value is constant.
 71. A method for operating a machine as set forth in claim 73 wherein the computer is further operated to determine the one axis as the fastest axis in each segment and to determine the slope of each segment relative to the fastest axis and to determine from the corresponding slope and the corresponding fastest axis command points for the other axis in each segment thereby to form the other axis command position trajectory.
 72. A method for operating a machine wherein feedback data is generated relative to the position of each of the machine members, the position feedback data is accumulated, the accumulated feedback data is periodically detected by the computer at the sampling rate, and the computer is further operated to generate the command outputs in response to the command position trajectories and the sampled position feedback data.
 73. A method for operating a machine having at least two members movable along or about respective axes, the steps of said method comprising operating a digital computer to determine input numerical command data including data representative of the end points of successive contour segments, operating the computer to determine the fastest axis in each segment, operating the computer to determine successive axis points corresponding to points along the segments between the segment end points for the fastest axis in each segment thereby to form a fastest axis command position trajectory, operating the computer to determine the slope of each segment relative to the fastest axis, operating the computer to determine from the corresponding slope and the corresponding fastest axis command points successive axis command points for the other axis in each segment thereby to form the other axis command position trajectory, operating the computer to generate command outputs at least in response to the command position trajectories, and operating the machine members in response to the command outputs.
 74. A method for operating a machine as set forth in claim 73 wherein a sampling determinant is generated at a predetermined rate, and the computer is further operated to generate the successive trajectory command points at the sampling determinant rate.
 75. A method for operating a machine as set forth in claim 74 wherein feedback data is generated relative to the position of each of the machine members, the position feedback data is accumulated, the accumulated feedback data is periodically detected by the computer at the sampling rate, and the computer is further operated to generate the command outputs in response to the command position trajectories and the sampled position feedback data.
 76. A method for operating a digital numerical contouring computer used in a controller for a machine having at least two movable members along or about respective axes, the steps of said method comprising executing a first program at a predetermined clocked sampling rate, determining axis command position trajectories during successive first program executions by generating successive axis points corresponding to points along the segments between the segment end points in response to precalculated data, determining during the first program executions machine member command outputs in response at least to the command position trajectories, executing at least one second program during nonoperating periods of the first program, determining during the execution of the second program input numerical command data, and making predetermined precalculations on the input command data to develop the precalculated data for the first program during execution of the second program.
 77. A computer operating method as set forth in claim 76 wherein there is further determined during the first program execution accumulated feedback data, and the feedback data and the command position trajectory are compared in each sample period to determine the command outputs.
 78. A computer operating method as set forth in claim 77 wherein the first program further determines the successive command points for at least one axis by adding the next previous command point to a position change quantity which is representative of sample period velocity times the sampling period.
 79. A computer operating method as set forth in claim 78 wherein the first program further determines the position change quantity by adding the next previous sample period velocity times the sample period to any required acceleration or deceleration in the present sample period times the square of the sample period.
 80. A computer operating method as set forth in claim 79 wherein the acceleration or deceleration rate value is a constant.
 81. A computer operating method as set forth in claim 80 wherein the precalculated data includes respective distances over which acceleration rate and constant speed and deceleration rate values are to be implemented in the trajectories, and the position change quantity is determined in accordance with the distances and the acceleration and deceleration and constant speed values.
 82. A computer operating method as set forth in claim 81 wherein the precalculated data further includes the product of a constant specified acceleration or deceleration value and the sampling period so that the position change representation can be determined by an addition or subtraction operation during execution of the first program.
 83. A computer operating method as set forth in claim 77 wherein the computer is further operated to determine one axis as the fastest axis in each segment and to determine the slope of each segment relative to the fastest axis and to determine from the corresponding slope and the corresponding fastest axis the trajectory command points for the other axis in each segment.
 84. A computer operating method as set forth in claim 82 wherein the computer is further operated to determine one axis as the fastest axis in each segment and to determine the slope of each segment relative to the fastest axis and to determine from the corresponding slope and the corresponding fastest axis the trajectory command points for the other axis in each segment.
 85. A computer operating method as set forth in claim 76 wherein the second program determines whether acceleration and deceleration are required in each segment and generates the precalculated data accordingly, and the first program implements the second program acceleration and deceleration determinations in generating the command position trajectories.
 86. A method for operating a digital numerical contouring computer used in a controller for a machine having at least two members movable along or about respective axes, the steps of said method comprising determining a command position trajectory for each of the two axes in response to input numerical command data pertaining to successive contour segments, determining a representation of whetHer a speed reduction is required prior to the end of each segment, determining a representation of a segment point at which to reduce speed in each segment determined to require slowdown, implementing in the generation of the command position trajectories a speed reduction from the segment operating speed value to a lower speed value for each segment determined to require slowdown, implementing in the command position trajectories any speed increase required by the command data for each segment following a slowdown segment, and generating commands for output control in response at least to the command position trajectory.
 87. A computer operating method as set forth in claim 86 wherein ramp speeds are implemented in the trajectories for slowdown and speedup.
 88. A computer operating method as set forth in claim 87 wherein the slowdown speed ramps are implemented in the trajectories to generate a lower speed zero value equal to zero at the end of slowdown segments.
 89. A numerical contouring controller for a machine having at least two members movable along or about respective motion axes, said controller comprising a digital computer, means for operating said computer to generate a command position trajectory for each of the two axes in response to input numerical command data pertaining to successive contour segments, means for operating said computer to determine whether a speed reduction is required prior to the end of each segment, means for operating said computer to determine a segment point at which to reduce speed in each segment determined to require slowdown, means for operating said computer to implement in the generation of the command position trajectories a speed reduction from the segment operating speed value to a lower speed value for each segment determined to require slowdown, means for operating said computer to implement in the generation of the command position trajectories any speed increase required by the command data for each segment following a slowdown segment, means for operating said computer to generate command outputs in response at least to the command position trajectories, and means for operating the two machine members in response to the command outputs.
 90. A machine controller as set forth in claim 92 wherein means are provided for generating feedback data relative to the position of each of the machine members, means are provided for accumulating the position feedback data, means are provided for operating the computer to detect the accumulated feedback data periodically at the sampling rate, and means are provided for further operating to generate the command outputs in response to the command position trajectories and the sampled position feedback data.
 91. A numerical contouring controller for a machine having at least two members movable along or about respective axes, said controller comprising a digital computer, means for operating said computer to determine input numerical command data, means for operating said computer to determine a command position trajectory for each of the two axes from the input data, means for operating said computer to determine command outputs in response at least to the command position trajectories, means for operating said computer to detect an operator feed hold request, means for operating said computer during feed hold to prevent the command position trajectories from determining the command outputs and to set the command outputs substantially equal to zero, and means for operating the two machine members in response to the command outputs.
 92. A numerical contouring controller for a machine having at least two members movable along or about respective axes, said controller comprising a digital computer, means for operating said computer to determine input numerical command data, means for operating said computer to determine a command position trajectory for each of the two axes from the input data, means for operating said computer to determine command outputs in response at least To the command position trajectories, means for operating said computer to detect changes in the operator feedrate override value, means for operating said computer to change the time scales for the command position trajectories in proportion to changes in the feedrate override, and means for operating the machine members in response to the command position trajectories. 